JavaScriptã®ããã©ãŒãã³ã¹æé©åãã¯ããã¯ã§ããã³ãŒãåå²ãšé å»¶è©äŸ¡ã§ããŠã§ããµã€ãã®é床ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããŸããããæé©ãªçµæãåŸãããã®ããããã®äœ¿ç𿹿³ãšã¿ã€ãã³ã°ãåŠã³ãŸãã
JavaScriptããã©ãŒãã³ã¹æé©åïŒã³ãŒãåå² vs. é å»¶è©äŸ¡
仿¥ã®ããžã¿ã«ç°å¢ã«ãããŠããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã¯æãéèŠã§ããèªã¿èŸŒã¿æéãé ããšããŠãŒã¶ãŒã®äžæºãé«ãé¢è±çããããŠæçµçã«ã¯ããžãã¹ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããŸããJavaScriptã¯ãåçã§ã€ã³ã¿ã©ã¯ãã£ããªãŠã§ããšã¯ã¹ããªãšã³ã¹ãäœæããããã«äžå¯æ¬ ã§ãããæ éã«æ±ããªããšããã«ããã¯ã«ãªãããšããããããŸããJavaScriptã®ããã©ãŒãã³ã¹ãæé©åããããã®2ã€ã®åŒ·åãªãã¯ããã¯ã¯ãã³ãŒãåå²ãšé å»¶è©äŸ¡ã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ãããããã®ãã¯ããã¯ã«ã€ããŠè©³ããæãäžãããã®ä»çµã¿ãå©ç¹ãæ¬ ç¹ãããã³æé©ãªçµæãåŸãããã«ãã€äœ¿çšããããæ¢ããŸãã
JavaScriptæé©åã®å¿ èŠæ§ãçè§£ãã
çŸä»£ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãè±å¯ãªæ©èœãæäŸããããã«JavaScriptã«å€§ããäŸåããŠããããšããããããŸããããããã¢ããªã±ãŒã·ã§ã³ãè€éã«ãªãã«ã€ããŠãJavaScriptã³ãŒãã®éãå¢å ãããã³ãã«ãµã€ãºã倧ãããªããŸãããããã®å€§ããªãã³ãã«ã¯ããã©ãŠã¶ãããŒãžãã€ã³ã¿ã©ã¯ãã£ãã«ãªãåã«ãã¹ãŠã®ã³ãŒããããŠã³ããŒããè§£æãå®è¡ããå¿ èŠããããããæåã®ããŒãžèªã¿èŸŒã¿æéã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãã
補åãã£ã«ã¿ãªã³ã°ãæ€çŽ¢æ©èœããŠãŒã¶ãŒèªèšŒãã€ã³ã¿ã©ã¯ãã£ããªè£œåã®ã£ã©ãªãŒãªã©ã倿°ã®æ©èœãåããå€§èŠæš¡ãªeã³ããŒã¹ãã©ãããã©ãŒã ãèããŠã¿ãŠãã ããããããã®æ©èœã¯ãã¹ãŠã倧éã®JavaScriptã³ãŒããå¿ èŠãšããŸããé©åãªæé©åãè¡ããªããšãç¹ã«ã¢ãã€ã«ããã€ã¹ãã€ã³ã¿ãŒãããæ¥ç¶ãé ãç°å¢ã§ã¯ããŠãŒã¶ãŒã®èªã¿èŸŒã¿æéãé ããªãå¯èœæ§ããããŸããããã«ããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãäœäžãã顧客ã倱ãå¯èœæ§ããããŸãã
ãããã£ãŠãJavaScriptã®ããã©ãŒãã³ã¹ãæé©åããããšã¯ãåãªãæè¡çãªè©³çްã§ã¯ãªããããžãã£ããªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããžãã¹ç®æšãéæããããã®éèŠãªåŽé¢ã§ãã
ã³ãŒãåå²ïŒå€§ããªãã³ãã«ãåå²ãã
ã³ãŒãåå²ãšã¯äœã§ããïŒ
ã³ãŒãåå²ã¯ãJavaScriptã³ãŒããããå°ããããã管çãããããã£ã³ã¯ãŸãã¯ãã³ãã«ã«åå²ãããã¯ããã¯ã§ããã¢ããªã±ãŒã·ã§ã³å šäœã®ã³ãŒããäºåã«ããŒããã代ããã«ããã©ãŠã¶ã¯æåã®ããŒãžããŒãã«å¿ èŠãªã³ãŒãã®ã¿ãããŠã³ããŒãããŸããåŸç¶ã®ã³ãŒããã£ã³ã¯ã¯ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåãæäœãããšãã«ãªã³ããã³ãã§ããŒããããŸãã
ãããæ¬¡ã®ããã«èããŠãã ãããå®åºèã®æ¬å±ãæ³åããŠã¿ãŠãã ããã販売ããŠãããã¹ãŠã®æ¬ãæ£é¢ã®ãŠã£ã³ããŠã«è©°ã蟌ãããšãã代ããã«ã誰ãäœãã¯ã£ãããšèŠãããšãã§ããªããªã£ãŠããŸããŸãã代ããã«ãæ éã«ãã¥ã¬ãŒã·ã§ã³ãããã»ã¬ã¯ã·ã§ã³ã衚瀺ããŸããæ®ãã®æ¬ã¯åºå ã®å¥ã®å Žæã«ä¿ç®¡ãããŠããã顧客ãå ·äœçã«èŠæ±ããå Žåã«ã®ã¿åãåºãããŸããã³ãŒãåå²ã¯åæ§ã®æ¹æ³ã§æ©èœããæåã®ãã¥ãŒã«å¿ èŠãªã³ãŒãã®ã¿ã衚瀺ããå¿ èŠã«å¿ããŠä»ã®ã³ãŒãããã§ããããŸãã
ã³ãŒãåå²ã®ä»çµã¿
ã³ãŒãåå²ã¯ãããŸããŸãªã¬ãã«ã§å®è£ ã§ããŸãã
- ãšã³ããªãŒãã€ã³ãåå²ïŒããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåã«åå¥ã®ãšã³ããªãŒãã€ã³ããäœæããããšãå«ãŸããŸããããšãã°ãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã管çããã·ã¥ããŒããããã³ãŠãŒã¶ãŒãããã¡ã€ã«ããŒãžã«åå¥ã®ãšã³ããªãŒãã€ã³ããããå ŽåããããŸãã
- ã«ãŒãããŒã¹ã®åå²ïŒãã®ãã¯ããã¯ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã«ãŒãã«åºã¥ããŠã³ãŒããåå²ããŸããåã«ãŒãã¯ããŠãŒã¶ãŒããã®ã«ãŒãã«ç§»åãããšãã«ã®ã¿ããŒããããç¹å®ã®ã³ãŒããã£ã³ã¯ã«å¯Ÿå¿ããŸãã
- åçã€ã³ããŒãïŒåçã€ã³ããŒãã䜿çšãããšãå®è¡æã«ã¢ãžã¥ãŒã«ããªã³ããã³ãã§ããŒãã§ããŸããããã«ãããã³ãŒãããã€ããŒãããããã现ããå¶åŸ¡ã§ãããããéèŠã§ãªãã³ãŒãã®ããŒããå®éã«å¿ èŠã«ãªããŸã§å»¶æã§ããŸãã
ã³ãŒãåå²ã®å©ç¹
- åæããŒãæéã®æ¹åïŒæåã®ãã³ãã«ãµã€ãºãåæžããããšã§ãã³ãŒãåå²ã¯æåã®ããŒãžããŒãæéãå€§å¹ ã«æ¹åããããé«éã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ã€ãªãããŸãã
- ãããã¯ãŒã¯åž¯åå¹ ã®åæžïŒå¿ èŠãªã³ãŒãã®ã¿ãããŒããããšããããã¯ãŒã¯çµç±ã§è»¢éããå¿ èŠãããããŒã¿éãåæžããããŠãŒã¶ãŒãšãµãŒããŒã®äž¡æ¹ã®åž¯åå¹ ãç¯çŽãããŸãã
- ãã£ãã·ã¥å©çšçã®åäžïŒå°ããªã³ãŒããã£ã³ã¯ã¯ãã©ãŠã¶ã«ãã£ãŠãã£ãã·ã¥ãããå¯èœæ§ãé«ãããã®åŸã®ã¢ã¯ã»ã¹ã§å床ããŠã³ããŒãããå¿ èŠæ§ã軜æžãããŸãã
- ããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒèªã¿èŸŒã¿æéã®ççž®ãšãããã¯ãŒã¯åž¯åå¹ ã®åæžã«ãããããã¹ã ãŒãºã§æ¥œãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå®çŸããŸãã
äŸïŒReactãšReact.lazyããã³Suspense
Reactã§ã¯ãReact.lazyãšSuspenseã䜿çšããŠã³ãŒãåå²ãç°¡åã«å®è£
ã§ããŸããReact.lazyã䜿çšãããšãã³ã³ããŒãã³ããåçã«ã€ã³ããŒãã§ããŸããäžæ¹ãSuspenseã¯ãã³ã³ããŒãã³ãã®ããŒãäžã«ãã©ãŒã«ããã¯UIïŒããŒãã£ã³ã°ã¹ãããŒãªã©ïŒã衚瀺ããæ¹æ³ãæäŸããŸãã
import React, { Suspense } from 'react';
const OtherComponent = React.lazy(() => import('./OtherComponent'));
function MyComponent() {
return (
Loading... }>
ãã®äŸã§ã¯ãOtherComponentã¯ã¬ã³ããªã³ã°ããããšãã«ã®ã¿ããŒããããŸããããŒãäžã¯ããŠãŒã¶ãŒã«ãLoading...ãã¡ãã»ãŒãžã衚瀺ãããŸãã
ã³ãŒãåå²ã®ããã®ããŒã«
- WebpackïŒããŸããŸãªã³ãŒãåå²ãã¯ããã¯ããµããŒãããäžè¬çãªã¢ãžã¥ãŒã«ãã³ãã©ãŒã
- RollupïŒå°ãããŠå¹ççãªãã³ãã«ã®äœæã«çŠç¹ãåœãŠãå¥ã®ã¢ãžã¥ãŒã«ãã³ãã©ãŒã
- ParcelïŒã³ãŒãåå²ãèªåçã«åŠçãããŒãæ§æãã³ãã©ãŒã
- ViteïŒé«éãªéçºãšæé©åãããæ¬çªãã«ãã®ããã«ãã€ãã£ãESã¢ãžã¥ãŒã«ã掻çšãããã«ãããŒã«ã
é å»¶è©äŸ¡ïŒèšç®ãå»¶æãã
é å»¶è©äŸ¡ãšã¯äœã§ããïŒ
é å»¶è©äŸ¡ïŒé å»¶è©äŸ¡ãšãåŒã°ããŸãïŒã¯ãåŒã®è©äŸ¡ããã®å€ãå®éã«å¿ èŠã«ãªããŸã§é ãããããã°ã©ãã³ã°ãã¯ããã¯ã§ããã€ãŸããèšç®ã¯ããã®çµæãå¿ èŠãªå Žåã«ã®ã¿å®è¡ãããäºåã«ç©æ¥µçã«èšç®ãããããšã¯ãããŸããã
è€æ°ã®ã³ãŒã¹ãããªãé£äºãæºåããŠãããšæ³åããŠãã ããããã¹ãŠã®æçãäžåºŠã«èª¿çããããã§ã¯ãããŸããã代ããã«ãæäŸããæéã«ãªã£ããšãã«ã®ã¿åæçãæºåããŸããé å»¶è©äŸ¡ã¯åæ§ã«æ©èœããçµæãå¿ èŠãªå Žåã«ã®ã¿èšç®ãå®è¡ããŸãã
é å»¶è©äŸ¡ã®ä»çµã¿
JavaScriptã§ã¯ãé å»¶è©äŸ¡ã¯ããŸããŸãªãã¯ããã¯ã䜿çšããŠå®è£ ã§ããŸãã
- 颿°ïŒåŒã颿°ã§ã©ãããããšã颿°ãåŒã³åºããããŸã§ãã®è©äŸ¡ãå»¶æã§ããŸãã
- ãžã§ãã¬ãŒã¿ãŒïŒãžã§ãã¬ãŒã¿ãŒã¯ããªã³ããã³ãã§å€ãçæããã€ãã¬ãŒã¿ãŒãäœæããæ¹æ³ãæäŸããŸãã
- ã¡ã¢åïŒã¡ã¢åã«ã¯ãé«äŸ¡ãªé¢æ°åŒã³åºãã®çµæããã£ãã·ã¥ããåãå ¥åãåã³çºçãããšãã«ãã£ãã·ã¥ãããçµæãè¿ãããšãå«ãŸããŸãã
- ãããã·ïŒãããã·ã䜿çšããŠãããããã£ã¢ã¯ã»ã¹ãã€ã³ã¿ãŒã»ããããããããã£å€ã®èšç®ãå®éã«ã¢ã¯ã»ã¹ããããŸã§å»¶æã§ããŸãã
é å»¶è©äŸ¡ã®å©ç¹
- ããã©ãŒãã³ã¹ã®åäžïŒäžèŠãªèšç®ãå»¶æããããšã§ãé å»¶è©äŸ¡ã¯ãç¹ã«å€§èŠæš¡ãªããŒã¿ã»ãããè€éãªèšç®ãæ±ãå Žåã«ãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
- ã¡ã¢ãªäœ¿çšéã®åæžïŒé å»¶è©äŸ¡ã¯ãããã«å¿ èŠãšãããªãäžéå€ã®äœæãåé¿ããããšã§ãã¡ã¢ãªäœ¿çšéãåæžã§ããŸãã
- å¿çæ§ã®åäžïŒåæããŒãäžã®äžèŠãªèšç®ãåé¿ããããšã§ãé å»¶è©äŸ¡ã¯ã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãé«ããããšãã§ããŸãã
- ç¡éããŒã¿æ§é ïŒé å»¶è©äŸ¡ã䜿çšãããšãå¿ èŠãªèŠçŽ ã®ã¿ããªã³ããã³ãã§èšç®ããããšã«ãããç¡éãªã¹ããã¹ããªãŒã ãªã©ã®ç¡éããŒã¿æ§é ãæäœã§ããŸãã
äŸïŒç»åã®é å»¶ããŒã
é å»¶è©äŸ¡ã®äžè¬çãªãŠãŒã¹ã±ãŒã¹ã¯ãç»åã®é å»¶ããŒãã§ããããŒãžäžã®ãã¹ãŠã®ç»åãäºåã«ããŒããã代ããã«ãæåã«ãã¥ãŒããŒãã«è¡šç€ºãããªãç»åã®ããŒããå»¶æã§ããŸããããã«ãããæåã®ããŒãžããŒãæéãå€§å¹ ã«æ¹åããããããã¯ãŒã¯åž¯åå¹ ã®æ¶è²»ãåæžãããŸãã
function lazyLoadImages() {
const images = document.querySelectorAll('img[data-src]');
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
observer.unobserve(img);
}
});
});
images.forEach((img) => {
observer.observe(img);
});
}
document.addEventListener('DOMContentLoaded', lazyLoadImages);
ãã®äŸã§ã¯ãIntersectionObserver APIã䜿çšããŠãç»åããã¥ãŒããŒãã«å
¥ãã¿ã€ãã³ã°ãæ€åºããŸããç»åã衚瀺ããããšããã®src屿§ãdata-src屿§ã®å€ã«èšå®ãããç»åãããŒããããŸããæ¬¡ã«ããªãã¶ãŒããŒã¯ç»åã®ç£èŠã忢ããŠãå床ããŒããããªãããã«ããŸãã
äŸïŒã¡ã¢å
ã¡ã¢åã䜿çšããŠãé«äŸ¡ãªé¢æ°åŒã³åºããæé©åã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
function memoize(func) {
const cache = {};
return function(...args) {
const key = JSON.stringify(args);
if (cache[key]) {
return cache[key];
}
const result = func(...args);
cache[key] = result;
return result;
};
}
function expensiveCalculation(n) {
// æéã®ãããèšç®ãã·ãã¥ã¬ãŒã
for (let i = 0; i < 100000000; i++) {
// äœãããã
}
return n * 2;
}
const memoizedCalculation = memoize(expensiveCalculation);
console.time('First call');
console.log(memoizedCalculation(5)); // æåã®åŒã³åºã - æéãããã
console.timeEnd('First call');
console.time('Second call');
console.log(memoizedCalculation(5)); // 2åç®ã®åŒã³åºã - ãã£ãã·ã¥ãããå€ãããã«è¿ã
console.timeEnd('Second call');
ãã®äŸã§ã¯ãmemoize颿°ã¯é¢æ°ãå
¥åãšããŠåãåãããã®é¢æ°ã®ã¡ã¢åãããããŒãžã§ã³ãè¿ããŸããã¡ã¢åããã颿°ã¯ã以åã®åŒã³åºãã®çµæããã£ãã·ã¥ãããããåãåŒæ°ã䜿çšããåŸç¶ã®åŒã³åºãã¯ãå
ã®é¢æ°ãåå®è¡ããã«ãã£ãã·ã¥ãããçµæãè¿ãããšãã§ããŸãã
ã³ãŒãåå² vs. é å»¶è©äŸ¡ïŒäž»ãªéã
ã³ãŒãåå²ãšé å»¶è©äŸ¡ã¯ã©ã¡ãã匷åãªæé©åãã¯ããã¯ã§ãããããã©ãŒãã³ã¹ã®ããŸããŸãªåŽé¢ã«å¯Ÿå¿ããŠããŸãã
- ã³ãŒãåå²ïŒã³ãŒããããå°ããªãã£ã³ã¯ã«åå²ãããªã³ããã³ãã§ããŒãããããšã«ãããæåã®ãã³ãã«ãµã€ãºãåæžããããšã«éç¹ã眮ããŠããŸããããã¯ãäž»ã«æåã®ããŒãžããŒãæéãæ¹åããããã«äœ¿çšãããŸãã
- é å»¶è©äŸ¡ïŒå€ã®èšç®ãå®éã«å¿ èŠã«ãªããŸã§å»¶æããããšã«éç¹ã眮ããŠããŸããããã¯ãäž»ã«é«äŸ¡ãªèšç®ãå€§èŠæš¡ãªããŒã¿ã»ãããæ±ãå Žåã«ããã©ãŒãã³ã¹ãåäžãããããã«äœ¿çšãããŸãã
æ¬è³ªçã«ãã³ãŒãåå²ã¯äºåã«ããŠã³ããŒãããå¿ èŠãããã³ãŒãã®éãåæžããé å»¶è©äŸ¡ã¯äºåã«å®è¡ããå¿ èŠãããèšç®ã®éãåæžããŸãã
ã³ãŒãåå² vs. é å»¶è©äŸ¡ããã€äœ¿çšããã
ã³ãŒãåå²
- å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ïŒç¹ã«è€æ°ã®ã«ãŒããŸãã¯æ©èœãåããã倧éã®JavaScriptã³ãŒããæã€ã¢ããªã±ãŒã·ã§ã³ã«ã³ãŒãåå²ã䜿çšããŸãã
- åæããŒãæéã®æ¹åïŒã³ãŒãåå²ã䜿çšããŠãæåã®ããŒãžããŒãæéãæ¹åããã€ã³ã¿ã©ã¯ãã£ãã«ãªããŸã§ã®æéãççž®ããŸãã
- ãããã¯ãŒã¯åž¯åå¹ ã®åæžïŒã³ãŒãåå²ã䜿çšããŠããããã¯ãŒã¯çµç±ã§è»¢éããå¿ èŠãããããŒã¿éãåæžããŸãã
é å»¶è©äŸ¡
- é«äŸ¡ãªèšç®ïŒé«äŸ¡ãªèšç®ãå®è¡ããããå€§èŠæš¡ãªããŒã¿ã»ããã«ã¢ã¯ã»ã¹ããããã颿°ã«é å»¶è©äŸ¡ã䜿çšããŸãã
- å¿çæ§ã®åäžïŒåæããŒãäžã®äžèŠãªèšç®ãå»¶æããããšã«ãããé å»¶è©äŸ¡ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãåäžãããŸãã
- ç¡éããŒã¿æ§é ïŒç¡éãªã¹ããã¹ããªãŒã ãªã©ã®ç¡éããŒã¿æ§é ãæäœããå Žåã¯ãé å»¶è©äŸ¡ã䜿çšããŸãã
- ã¡ãã£ã¢ã®é å»¶ããŒãïŒç»åããããªããã®ä»ã®ã¡ãã£ã¢ã¢ã»ããã«é å»¶ããŒããå®è£ ããŠãããŒãžã®èªã¿èŸŒã¿æéãæ¹åããŸãã
ã³ãŒãåå²ãšé å»¶è©äŸ¡ã®çµã¿åãã
å€ãã®å Žåãã³ãŒãåå²ãšé å»¶è©äŸ¡ãçµã¿åãããããšã§ãããã«å€§ããªããã©ãŒãã³ã¹åäžãåŸãããŸããããšãã°ãã³ãŒãåå²ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãããå°ããªãã£ã³ã¯ã«åå²ããé å»¶è©äŸ¡ã䜿çšããŠãããã®ãã£ã³ã¯å ã®å€ã®èšç®ãå»¶æããããšãã§ããŸãã
eã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸããããã³ãŒãåå²ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã補åãªã¹ãããŒãžã補å詳现ããŒãžãããã³ãã§ãã¯ã¢ãŠãããŒãžã®åå¥ã®ãã³ãã«ã«åå²ã§ããŸããæ¬¡ã«ã補å詳现ããŒãžå ã§ãé å»¶è©äŸ¡ã䜿çšããŠãç»åã®ããŒããŸãã¯è£œåã®æšå¥šäºé ã®èšç®ãå®éã«å¿ èŠã«ãªããŸã§å»¶æã§ããŸãã
ã³ãŒãåå²ãšé å»¶è©äŸ¡ãè¶ ããŠïŒè¿œå ã®æé©åãã¯ããã¯
ã³ãŒãåå²ãšé å»¶è©äŸ¡ã¯åŒ·åãªãã¯ããã¯ã§ãããJavaScriptã®ããã©ãŒãã³ã¹æé©åã«é¢ããŠã¯ãããºã«ã®äžéšåã«ãããŸãããããã©ãŒãã³ã¹ãããã«åäžãããããã«äœ¿çšã§ãã远å ã®ãã¯ããã¯ãããã€ã瀺ããŸãã
- æå°åïŒã³ãŒãããäžèŠãªæåïŒç©ºçœãã³ã¡ã³ããªã©ïŒãåé€ããŠããµã€ãºãçž®å°ããŸãã
- å§çž®ïŒGzipãBrotliãªã©ã®ããŒã«ã䜿çšããŠã³ãŒããå§çž®ãããµã€ãºãããã«çž®å°ããŸãã
- ãã£ãã·ã¥ïŒãã©ãŠã¶ãã£ãã·ã¥ãšCDNãã£ãã·ã¥ã掻çšããŠããµãŒããŒãžã®ãªã¯ãšã¹ãæ°ãæžãããŸãã
- ããªãŒã·ã§ã€ãã³ã°ïŒãã³ãã«ããæªäœ¿çšã®ã³ãŒããåé€ããŠããµã€ãºãçž®å°ããŸãã
- ç»åã®æé©åïŒç»åãå§çž®ããé©åãªå¯žæ³ã«ãµã€ãºå€æŽããWebPãªã©ã®ææ°ã®ç»å圢åŒã䜿çšããŠãç»åãæé©åããŸãã
- ãããŠã³ã¹ãšã¹ããããªã³ã°ïŒã€ãã³ããã³ãã©ãŒãå®è¡ãããã¬ãŒããå¶åŸ¡ããŠãããã©ãŒãã³ã¹ã®åé¡ãé²ããŸãã
- å¹ççãªDOMæäœïŒDOMæäœãæå°éã«æããå¹ççãªDOMæäœãã¯ããã¯ã䜿çšããŸãã
- Webã¯ãŒã«ãŒïŒèšç®è² è·ã®é«ãã¿ã¹ã¯ãWebã¯ãŒã«ãŒã«ãªãããŒãããŠãã¡ã€ã³ã¹ã¬ããã®ãããã¯ãé²ããŸãã
çµè«
JavaScriptã®ããã©ãŒãã³ã¹æé©åã¯ãããžãã£ããªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããžãã¹ç®æšãéæããããã®éèŠãªåŽé¢ã§ããã³ãŒãåå²ãšé å»¶è©äŸ¡ã¯ãåæããŒãæéã®ççž®ããããã¯ãŒã¯åž¯åå¹ ã®æ¶è²»éã®åæžãããã³äžèŠãªèšç®ã®å»¶æã«ãããããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ãã2ã€ã®åŒ·åãªãã¯ããã¯ã§ãããããã®ãã¯ããã¯ã®ä»çµã¿ãšãã€äœ¿çšããããçè§£ããããšã§ãããé«éã§å¿çæ§ãé«ããããæ¥œããWebã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³èŠä»¶ãèæ ®ããããŒãºã«æãé©ãããã¯ããã¯ã䜿çšããããšãå¿ããªãã§ãã ãããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠããæé©åæŠç¥ãç¹°ãè¿ããŠãå¯èœãªéãæé«ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŠããããšã確èªããŠãã ãããã³ãŒãåå²ãšé å»¶è©äŸ¡ã®åãæŽ»çšããŠãæ©èœãè±å¯ãªã ãã§ãªãã髿§èœã§äœ¿ãããããŠã§ãã¢ããªã±ãŒã·ã§ã³ãäžçäžã§äœæããŸãããã
远å ã®åŠç¿ãªãœãŒã¹
- Webpackããã¥ã¡ã³ãïŒhttps://webpack.js.org/
- Rollupããã¥ã¡ã³ãïŒhttps://rollupjs.org/guide/en/
- Viteããã¥ã¡ã³ãïŒhttps://vitejs.dev/
- MDN Web Docs - Intersection Observer APIïŒhttps://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
- Google Developers - JavaScriptã®å®è¡ãæé©åããïŒhttps://developers.google.com/web/fundamentals/performance/optimizing-javascript/